package com.bsj.travel.def.common.DTO.web.openApi.device;

import com.bsj.travel.def.common.VO.device.DeviceTemplateVO;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @author LiJiaXin
 * @version 1.0.0
 * @description DeviceOpenApiMsgReportDTO
 * @time 2024/4/8 14:51
 */
@Data
public class DeviceOpenApiMsgReportDTO {

    /**
     * 产品key
     */
    @NotBlank(message = "产品KEY不能为空")
    private String productKey;

    /**
     * 设备号
     */
    @NotBlank(message = "设备号不能为空")
    private String deviceName;

    /**
     * Topic类
     */
    @NotBlank(message = "Topic类不能为空")
    private String topicClass;

    /**
     * 推送内容
     */
    @NotBlank(message = "推送内容不能为空")
    private String content;

    /**
     * QOS（0:最多发送一次 1:最少发送一次）
     * 如果 QoS=1 消息未接收到 PUBACK 消息，会在设备重连时，重新推送给设备
     */
    @NotNull(message = "消息发送方式不能为空")
    @Min(value = 0, message = "消息发送方式不存在")
    @Max(value = 1, message = "消息发送方式不存在")
    private Integer qos;
}
